﻿using AjaxControlToolkit;
using System;
using System.Web.UI;

namespace ProyectoSalvadorDelMundo.Helpers
{
    public class PaginaBase : System.Web.UI.Page
    {
        public PaginaBase()
        {
            this.Load += new EventHandler(VerificarUsuario);
        }

        public void RegresarALogin()
        {
            // Redirecciona a la pagina indicada.
            //Response.Redirect("~/Login/Login.aspx");

            // Redirecciona sin elevar la carga al servidor.
            //Server.Transfer("~/Login/Login.aspx");
        }

        protected void VerificarUsuario(object sender, EventArgs e)
        {
            // Acceder a controles de masterpage.
            //var Link = ((HyperLink)Master.FindControl("linkBarcas"));
            //Link.Text = "LOL";



            // Login
            //if (this.Session["Estado"] == null)
            //{
            //    if (Request.Cookies["User"] == null)
            //    {
            //        RegresarALogin();
            //    }
            //    else if (Request.Cookies["User"]["Estado"] == null)
            //    {
            //        RegresarALogin();
            //    }
            //}

        }

        public void CerrarMens(object sender, EventArgs e)
        {
            CerrarMensajes();
        }

        public enum Posicion
        {
            ArribaDerecha = 1,
            AbajoDerecha = 2,
            AbajoIzquierda = 3,
            ArribaIzquierda = 4,
            ArribaLargo = 5,
            AbajoLargo = 6

        }

        public enum Mensaje
        {
            Informacion = 1,
            Exito = 2,
            Error = 3,
            Advertencia = 4
        }

        protected void MostarInfo(string p_Mensaje)
        {
            Posicion i_Posicion = Posicion.ArribaDerecha;
            Mensaje i_Mensaje = Mensaje.Informacion;
            ConfigurarToastr(p_Mensaje, "Informacion", (int)i_Posicion, (int)i_Mensaje);
        }

        protected void MostarExito(string p_Mensaje)
        {
            Posicion i_Posicion = Posicion.ArribaDerecha;
            Mensaje i_Mensaje = Mensaje.Exito;
            ConfigurarToastr(p_Mensaje, "Resultado", (int)i_Posicion, (int)i_Mensaje);
        }

        protected void MostarError(string p_Mensaje)
        {
            Posicion i_Posicion = Posicion.ArribaDerecha;
            Mensaje i_Mensaje = Mensaje.Error;
            ConfigurarToastr(p_Mensaje, "Resultado", (int)i_Posicion, (int)i_Mensaje);
        }

        protected void MostarAdvertencia(string p_Mensaje)
        {
            Posicion i_Posicion = Posicion.ArribaDerecha;
            Mensaje i_Mensaje = Mensaje.Advertencia;
            ConfigurarToastr(p_Mensaje, "Advertencia", (int)i_Posicion, (int)i_Mensaje);
        }

        protected void CerrarMensajes()
        {
            MostarToastr(
                page: this,
                message: "",
                title: "",
                type: "",
                clearToast: true,
                pos: "",
                Sticky: false);
        }

        protected void ConfigurarToastr(string p_Mensaje, string p_Titulo, int p_Posicion, int p_TipoMensaje)
        {
            var s_UbicacionMensaje = string.Empty;
            var s_TipoMensaje = string.Empty;
            switch (p_Posicion)
            {
                case 1:
                    s_UbicacionMensaje = "toast-top-right";
                    break;
                case 2:
                    s_UbicacionMensaje = "toast-bottom-right";
                    break;
                case 3:
                    s_UbicacionMensaje = "toast-bottom-left";
                    break;
                case 4:
                    s_UbicacionMensaje = "toast-top-left";
                    break;
                case 5:
                    s_UbicacionMensaje = "toast-top-full-width";
                    break;
                case 6:
                    s_UbicacionMensaje = "toast-bottom-full-width";
                    break;
                default:
                    s_UbicacionMensaje = "toast-top-right";
                    break;
            }

            switch (p_TipoMensaje)
            {
                case 1:
                    s_TipoMensaje = "info";
                    break;
                case 2:
                    s_TipoMensaje = "success";
                    break;
                case 3:
                    s_TipoMensaje = "error";
                    break;
                case 4:
                    s_TipoMensaje = "warning";
                    break;
                default:
                    s_UbicacionMensaje = "info";
                    break;
            }

            MostarToastr(
                page: this,
                message: p_Mensaje,
                title: p_Titulo,
                type: s_TipoMensaje,
                clearToast: false,
                pos: s_UbicacionMensaje,
                Sticky: false);
        }


        protected void MostarToastr(Page page, string message, string title, string type, bool clearToast, string pos, bool Sticky)
        {

            ToolkitScriptManager.RegisterStartupScript(this, typeof(Page), "toastr_message", String.Format("Notify('{0}','{1}','{2}', '{3}', '{4}', '{5}');", message, title, type, clearToast, pos, Sticky), addScriptTags: true);
        }
    }
}